Skip to content

Commit 89c8d1a

Browse files
authored
rename metrics and update metrics helps (#152)
* rename metrics and update metrics helps * add meta info about crowdsec Co-authored-by: erenJag <erenJag>
1 parent acc0960 commit 89c8d1a

6 files changed

Lines changed: 63 additions & 54 deletions

File tree

cmd/crowdsec-cli/metrics.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -103,22 +103,22 @@ func ShowPrometheus(url string) {
103103
ival := int(fval)
104104
switch fam.Name {
105105
/*buckets*/
106-
case "cs_bucket_create":
106+
case "cs_bucket_created_total":
107107
if _, ok := buckets_stats[name]; !ok {
108108
buckets_stats[name] = make(map[string]int)
109109
}
110110
buckets_stats[name]["instanciation"] += ival
111-
case "cs_bucket_count":
111+
case "cs_buckets":
112112
if _, ok := buckets_stats[name]; !ok {
113113
buckets_stats[name] = make(map[string]int)
114114
}
115115
buckets_stats[name]["curr_count"] += ival
116-
case "cs_bucket_overflow":
116+
case "cs_bucket_overflowed_total":
117117
if _, ok := buckets_stats[name]; !ok {
118118
buckets_stats[name] = make(map[string]int)
119119
}
120120
buckets_stats[name]["overflow"] += ival
121-
case "cs_bucket_pour":
121+
case "cs_bucket_poured_total":
122122
if _, ok := buckets_stats[name]; !ok {
123123
buckets_stats[name] = make(map[string]int)
124124
}
@@ -127,38 +127,38 @@ func ShowPrometheus(url string) {
127127
}
128128
buckets_stats[name]["pour"] += ival
129129
acquis_stats[source]["pour"] += ival
130-
case "cs_bucket_underflow":
130+
case "cs_bucket_underflowed_total":
131131
if _, ok := buckets_stats[name]; !ok {
132132
buckets_stats[name] = make(map[string]int)
133133
}
134134
buckets_stats[name]["underflow"] += ival
135135
/*acquis*/
136-
case "cs_reader_hits":
136+
case "cs_reader_hits_total":
137137
if _, ok := acquis_stats[source]; !ok {
138138
acquis_stats[source] = make(map[string]int)
139139
}
140140
acquis_stats[source]["reads"] += ival
141-
case "cs_parser_hits_ok":
141+
case "cs_parser_hits_ok_total":
142142
if _, ok := acquis_stats[source]; !ok {
143143
acquis_stats[source] = make(map[string]int)
144144
}
145145
acquis_stats[source]["parsed"] += ival
146-
case "cs_parser_hits_ko":
146+
case "cs_parser_hits_ko_total":
147147
if _, ok := acquis_stats[source]; !ok {
148148
acquis_stats[source] = make(map[string]int)
149149
}
150150
acquis_stats[source]["unparsed"] += ival
151-
case "cs_node_hits":
151+
case "cs_node_hits_total":
152152
if _, ok := parsers_stats[name]; !ok {
153153
parsers_stats[name] = make(map[string]int)
154154
}
155155
parsers_stats[name]["hits"] += ival
156-
case "cs_node_hits_ok":
156+
case "cs_node_hits_ok_total":
157157
if _, ok := parsers_stats[name]; !ok {
158158
parsers_stats[name] = make(map[string]int)
159159
}
160160
parsers_stats[name]["parsed"] += ival
161-
case "cs_node_hits_ko":
161+
case "cs_node_hits_ko_total":
162162
if _, ok := parsers_stats[name]; !ok {
163163
parsers_stats[name] = make(map[string]int)
164164
}

cmd/crowdsec/metrics.go

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"time"
55

66
"github.com/crowdsecurity/crowdsec/pkg/acquisition"
7+
"github.com/crowdsecurity/crowdsec/pkg/cwversion"
78
leaky "github.com/crowdsecurity/crowdsec/pkg/leakybucket"
89
"github.com/crowdsecurity/crowdsec/pkg/parser"
910
"github.com/jamiealquiza/tachymeter"
@@ -32,37 +33,45 @@ var (
3233
/*prometheus*/
3334
var globalParserHits = prometheus.NewCounterVec(
3435
prometheus.CounterOpts{
35-
Name: "cs_parser_hits",
36-
Help: "How many time an event entered the parser.",
36+
Name: "cs_parser_hits_total",
37+
Help: "Total events entered the parser.",
3738
},
3839
[]string{"source"},
3940
)
4041
var globalParserHitsOk = prometheus.NewCounterVec(
4142
prometheus.CounterOpts{
42-
Name: "cs_parser_hits_ok",
43-
Help: "How many time an event was successfully parsed.",
43+
Name: "cs_parser_hits_ok_total",
44+
Help: "Total events were successfully parsed.",
4445
},
4546
[]string{"source"},
4647
)
4748
var globalParserHitsKo = prometheus.NewCounterVec(
4849
prometheus.CounterOpts{
49-
Name: "cs_parser_hits_ko",
50-
Help: "How many time an event was unsuccessfully parsed.",
50+
Name: "cs_parser_hits_ko_total",
51+
Help: "Total events were unsuccessfully parsed.",
5152
},
5253
[]string{"source"},
5354
)
5455

5556
var globalBucketPourKo = prometheus.NewCounter(
5657
prometheus.CounterOpts{
57-
Name: "cs_bucket_pour_ko",
58-
Help: "How many time an event was poured in no bucket.",
58+
Name: "cs_bucket_pour_ko_total",
59+
Help: "Total events were not poured in a bucket.",
5960
},
6061
)
6162

6263
var globalBucketPourOk = prometheus.NewCounter(
6364
prometheus.CounterOpts{
64-
Name: "cs_bucket_pour_ok",
65-
Help: "How many time an event was poured in at least one bucket.",
65+
Name: "cs_bucket_pour_ok_total",
66+
Help: "Total events were poured in at least one bucket.",
67+
},
68+
)
69+
70+
var globalCsInfo = prometheus.NewGauge(
71+
prometheus.GaugeOpts{
72+
Name: "cs_info",
73+
Help: "Information about Crowdsec.",
74+
ConstLabels: prometheus.Labels{"version": cwversion.VersionStr()},
6675
},
6776
)
6877

@@ -122,7 +131,7 @@ func registerPrometheus() {
122131
log.Warningf("Loading prometheus collectors")
123132
prometheus.MustRegister(globalParserHits, globalParserHitsOk, globalParserHitsKo,
124133
parser.NodesHits, parser.NodesHitsOk, parser.NodesHitsKo,
125-
acquisition.ReaderHits,
134+
acquisition.ReaderHits, globalCsInfo,
126135
leaky.BucketsPour, leaky.BucketsUnderflow, leaky.BucketsInstanciation, leaky.BucketsOverflow, leaky.BucketsCurrentCount)
127136
http.Handle("/metrics", promhttp.Handler())
128137
}

docs/observability/metrics.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -79,40 +79,40 @@ All the counters are "since {{crowdsec.name}} start".
7979

8080
### Scenarios
8181

82-
- `cs_bucket_create` : number of instantiation of each scenario
83-
- `cs_bucket_overflow` : number of overflow of each scenario
84-
- `cs_bucket_underflow` : number of underflow of each scenario (bucket was created but expired because of lack of events)
85-
- `cs_bucket_pour` : number of event poured to each scenario with source as complementary key :
82+
- `cs_bucket_created_total` : number of instantiation of each scenario
83+
- `cs_bucket_overflowed_total` : number of overflow of each scenario
84+
- `cs_bucket_underflowed_total` : number of underflow of each scenario (bucket was created but expired because of lack of events)
85+
- `cs_bucket_poured_total` : number of event poured to each scenario with source as complementary key :
8686

8787
```
8888
#2030 lines from `/var/log/nginx/access.log` were poured to `crowdsecurity/http-scan-uniques_404` scenario
89-
cs_bucket_pour{name="crowdsecurity/http-scan-uniques_404",source="/var/log/nginx/access.log"} 2030
89+
cs_bucket_poured_total{name="crowdsecurity/http-scan-uniques_404",source="/var/log/nginx/access.log"} 2030
9090
```
9191

9292

9393
### Parsers
94-
- `cs_node_hits` : how many time an event from a specific source was processed by a parser node :
94+
- `cs_node_hits_total` : how many time an event from a specific source was processed by a parser node :
9595

9696
```
9797
# 235 lines from `auth.log` were processed by the `crowdsecurity/dateparse-enrich` parser
98-
cs_node_hits{name="crowdsecurity/dateparse-enrich",source="/var/log/auth.log"} 235
98+
cs_node_hits_total{name="crowdsecurity/dateparse-enrich",source="/var/log/auth.log"} 235
9999
```
100100

101-
- `cs_node_hits_ko` : how many times an event from a specific was unsuccessfully parsed by a specific parser
101+
- `cs_node_hits_ko_total` : how many times an event from a specific was unsuccessfully parsed by a specific parser
102102

103103
```
104104
# 2112 lines from `error.log` failed to be parsed by `crowdsecurity/http-logs`
105-
cs_node_hits_ko{name="crowdsecurity/http-logs",source="/var/log/nginx/error.log"} 2112
105+
cs_node_hits_ko_total{name="crowdsecurity/http-logs",source="/var/log/nginx/error.log"} 2112
106106
```
107107

108-
- `cs_node_hits_ok` : how many times an event from a specific source was successfully parsed by a specific parser
108+
- `cs_node_hits_ok_total` : how many times an event from a specific source was successfully parsed by a specific parser
109109

110-
- `cs_parser_hits` : how many times an event from a source has hit the parser
111-
- `cs_parser_hits_ok` : how many times an event from a source was successfully parsed
112-
- `cs_parser_hits_ko` : how many times an event from a source was unsuccessfully parsed
110+
- `cs_parser_hits_total` : how many times an event from a source has hit the parser
111+
- `cs_parser_hits_ok_total` : how many times an event from a source was successfully parsed
112+
- `cs_parser_hits_ko_total` : how many times an event from a source was unsuccessfully parsed
113113

114114

115115
### Acquisition
116116

117-
- `cs_reader_hits` : how many events were read from a specific source
117+
- `cs_reader_hits_total` : how many events were read from a specific source
118118

pkg/acquisition/file_reader.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ const (
6161

6262
var ReaderHits = prometheus.NewCounterVec(
6363
prometheus.CounterOpts{
64-
Name: "cs_reader_hits",
65-
Help: "How many lines where read.",
64+
Name: "cs_reader_hits_total",
65+
Help: "Total lines where read.",
6666
},
6767
[]string{"source"},
6868
)

pkg/leakybucket/bucket.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,40 +68,40 @@ type Leaky struct {
6868

6969
var BucketsPour = prometheus.NewCounterVec(
7070
prometheus.CounterOpts{
71-
Name: "cs_bucket_pour",
72-
Help: "How many time an event was poured in this bucket.",
71+
Name: "cs_bucket_poured_total",
72+
Help: "Total events were poured in bucket.",
7373
},
7474
[]string{"source", "name"},
7575
)
7676

7777
var BucketsOverflow = prometheus.NewCounterVec(
7878
prometheus.CounterOpts{
79-
Name: "cs_bucket_overflow",
80-
Help: "How many time this bucket overflowed.",
79+
Name: "cs_bucket_overflowed_total",
80+
Help: "Total buckets overflowed.",
8181
},
8282
[]string{"name"},
8383
)
8484

8585
var BucketsUnderflow = prometheus.NewCounterVec(
8686
prometheus.CounterOpts{
87-
Name: "cs_bucket_underflow",
88-
Help: "How many time this bucket has underflowed.",
87+
Name: "cs_bucket_underflowed_total",
88+
Help: "Total buckets underflowed.",
8989
},
9090
[]string{"name"},
9191
)
9292

9393
var BucketsInstanciation = prometheus.NewCounterVec(
9494
prometheus.CounterOpts{
95-
Name: "cs_bucket_create",
96-
Help: "How many time this bucket was instanciated.",
95+
Name: "cs_bucket_created_total",
96+
Help: "Total buckets were instanciated.",
9797
},
9898
[]string{"name"},
9999
)
100100

101101
var BucketsCurrentCount = prometheus.NewGaugeVec(
102102
prometheus.GaugeOpts{
103-
Name: "cs_bucket_count",
104-
Help: "How many instances of this bucket exist.",
103+
Name: "cs_buckets",
104+
Help: "Number of buckets that currently exist.",
105105
},
106106
[]string{"name"},
107107
)

pkg/parser/runtime.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -196,24 +196,24 @@ func ProcessStatics(statics []types.ExtraField, p *types.Event, clog *logrus.Ent
196196

197197
var NodesHits = prometheus.NewCounterVec(
198198
prometheus.CounterOpts{
199-
Name: "cs_node_hits",
200-
Help: "How many time an event entered this node.",
199+
Name: "cs_node_hits_total",
200+
Help: "Total events entered node.",
201201
},
202202
[]string{"source", "name"},
203203
)
204204

205205
var NodesHitsOk = prometheus.NewCounterVec(
206206
prometheus.CounterOpts{
207-
Name: "cs_node_hits_ok",
208-
Help: "How many time an event successfuly exited this node.",
207+
Name: "cs_node_hits_ok_total",
208+
Help: "Total events successfuly exited node.",
209209
},
210210
[]string{"source", "name"},
211211
)
212212

213213
var NodesHitsKo = prometheus.NewCounterVec(
214214
prometheus.CounterOpts{
215-
Name: "cs_node_hits_ko",
216-
Help: "How many time an event unsuccessfuly exited this node.",
215+
Name: "cs_node_hits_ko_total",
216+
Help: "Total events unsuccessfuly exited node.",
217217
},
218218
[]string{"source", "name"},
219219
)

0 commit comments

Comments
 (0)