|
@@ -4,6 +4,7 @@ import (
|
|
|
"time"
|
|
|
|
|
|
"github.com/crowdsecurity/crowdsec/pkg/acquisition"
|
|
|
+ "github.com/crowdsecurity/crowdsec/pkg/cwversion"
|
|
|
leaky "github.com/crowdsecurity/crowdsec/pkg/leakybucket"
|
|
|
"github.com/crowdsecurity/crowdsec/pkg/parser"
|
|
|
"github.com/jamiealquiza/tachymeter"
|
|
@@ -32,37 +33,45 @@ var (
|
|
|
/*prometheus*/
|
|
|
var globalParserHits = prometheus.NewCounterVec(
|
|
|
prometheus.CounterOpts{
|
|
|
- Name: "cs_parser_hits",
|
|
|
- Help: "How many time an event entered the parser.",
|
|
|
+ Name: "cs_parser_hits_total",
|
|
|
+ Help: "Total events entered the parser.",
|
|
|
},
|
|
|
[]string{"source"},
|
|
|
)
|
|
|
var globalParserHitsOk = prometheus.NewCounterVec(
|
|
|
prometheus.CounterOpts{
|
|
|
- Name: "cs_parser_hits_ok",
|
|
|
- Help: "How many time an event was successfully parsed.",
|
|
|
+ Name: "cs_parser_hits_ok_total",
|
|
|
+ Help: "Total events were successfully parsed.",
|
|
|
},
|
|
|
[]string{"source"},
|
|
|
)
|
|
|
var globalParserHitsKo = prometheus.NewCounterVec(
|
|
|
prometheus.CounterOpts{
|
|
|
- Name: "cs_parser_hits_ko",
|
|
|
- Help: "How many time an event was unsuccessfully parsed.",
|
|
|
+ Name: "cs_parser_hits_ko_total",
|
|
|
+ Help: "Total events were unsuccessfully parsed.",
|
|
|
},
|
|
|
[]string{"source"},
|
|
|
)
|
|
|
|
|
|
var globalBucketPourKo = prometheus.NewCounter(
|
|
|
prometheus.CounterOpts{
|
|
|
- Name: "cs_bucket_pour_ko",
|
|
|
- Help: "How many time an event was poured in no bucket.",
|
|
|
+ Name: "cs_bucket_pour_ko_total",
|
|
|
+ Help: "Total events were not poured in a bucket.",
|
|
|
},
|
|
|
)
|
|
|
|
|
|
var globalBucketPourOk = prometheus.NewCounter(
|
|
|
prometheus.CounterOpts{
|
|
|
- Name: "cs_bucket_pour_ok",
|
|
|
- Help: "How many time an event was poured in at least one bucket.",
|
|
|
+ Name: "cs_bucket_pour_ok_total",
|
|
|
+ Help: "Total events were poured in at least one bucket.",
|
|
|
+ },
|
|
|
+)
|
|
|
+
|
|
|
+var globalCsInfo = prometheus.NewGauge(
|
|
|
+ prometheus.GaugeOpts{
|
|
|
+ Name: "cs_info",
|
|
|
+ Help: "Information about Crowdsec.",
|
|
|
+ ConstLabels: prometheus.Labels{"version": cwversion.VersionStr()},
|
|
|
},
|
|
|
)
|
|
|
|
|
@@ -122,7 +131,7 @@ func registerPrometheus() {
|
|
|
log.Warningf("Loading prometheus collectors")
|
|
|
prometheus.MustRegister(globalParserHits, globalParserHitsOk, globalParserHitsKo,
|
|
|
parser.NodesHits, parser.NodesHitsOk, parser.NodesHitsKo,
|
|
|
- acquisition.ReaderHits,
|
|
|
+ acquisition.ReaderHits, globalCsInfo,
|
|
|
leaky.BucketsPour, leaky.BucketsUnderflow, leaky.BucketsInstanciation, leaky.BucketsOverflow, leaky.BucketsCurrentCount)
|
|
|
http.Handle("/metrics", promhttp.Handler())
|
|
|
}
|