mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-12 06:24:10 +01:00
inlet/outlet: rename a few metrics
For example: ``` 17:35 ❱ curl -s 127.0.0.1:8080/api/v0/outlet/metrics | promtool check metrics akvorado_outlet_core_classifier_exporter_cache_size_items counter metrics should have "_total" suffix akvorado_outlet_core_classifier_interface_cache_size_items counter metrics should have "_total" suffix akvorado_outlet_flow_decoder_netflow_flowset_records_sum counter metrics should have "_total" suffix akvorado_outlet_flow_decoder_netflow_flowset_records_sum non-histogram and non-summary metrics should not have "_sum" suffix akvorado_outlet_flow_decoder_netflow_flowset_sum counter metrics should have "_total" suffix akvorado_outlet_flow_decoder_netflow_flowset_sum non-histogram and non-summary metrics should not have "_sum" suffix akvorado_outlet_kafka_buffered_fetch_records_total non-counter metrics should not have "_total" suffix akvorado_outlet_kafka_buffered_produce_records_total non-counter metrics should not have "_total" suffix akvorado_outlet_metadata_cache_refreshs counter metrics should have "_total" suffix akvorado_outlet_routing_provider_bmp_peers_total non-counter metrics should not have "_total" suffix akvorado_outlet_routing_provider_bmp_routes_total non-counter metrics should not have "_total" suffix ``` Also ensure metrics using errors as label don't have a too great cardinality by using constants for error messages used.
This commit is contained in:
@@ -34,11 +34,11 @@ type Decoder struct {
|
||||
sampling map[string]*samplingRateSystem
|
||||
|
||||
metrics struct {
|
||||
errors *reporter.CounterVec
|
||||
stats *reporter.CounterVec
|
||||
setRecordsStatsSum *reporter.CounterVec
|
||||
setStatsSum *reporter.CounterVec
|
||||
templatesStats *reporter.CounterVec
|
||||
errors *reporter.CounterVec
|
||||
packets *reporter.CounterVec
|
||||
records *reporter.CounterVec
|
||||
sets *reporter.CounterVec
|
||||
templates *reporter.CounterVec
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,35 +55,35 @@ func New(r *reporter.Reporter, dependencies decoder.Dependencies) decoder.Decode
|
||||
nd.metrics.errors = nd.r.CounterVec(
|
||||
reporter.CounterOpts{
|
||||
Name: "errors_total",
|
||||
Help: "Netflows processed errors.",
|
||||
Help: "Number of NetFlow errors processed.",
|
||||
},
|
||||
[]string{"exporter", "error"},
|
||||
)
|
||||
nd.metrics.stats = nd.r.CounterVec(
|
||||
nd.metrics.packets = nd.r.CounterVec(
|
||||
reporter.CounterOpts{
|
||||
Name: "flows_total",
|
||||
Help: "Netflows processed.",
|
||||
Name: "packets_total",
|
||||
Help: "Number of NetFlow packets received.",
|
||||
},
|
||||
[]string{"exporter", "version"},
|
||||
)
|
||||
nd.metrics.setRecordsStatsSum = nd.r.CounterVec(
|
||||
nd.metrics.sets = nd.r.CounterVec(
|
||||
reporter.CounterOpts{
|
||||
Name: "flowset_records_sum",
|
||||
Help: "Netflows FlowSets sum of records.",
|
||||
Name: "sets_total",
|
||||
Help: "Number of NetFlow flowsets received.",
|
||||
},
|
||||
[]string{"exporter", "version", "type"},
|
||||
)
|
||||
nd.metrics.setStatsSum = nd.r.CounterVec(
|
||||
nd.metrics.records = nd.r.CounterVec(
|
||||
reporter.CounterOpts{
|
||||
Name: "flowset_sum",
|
||||
Help: "Netflows FlowSets sum.",
|
||||
Name: "records_total",
|
||||
Help: "Number of NetFlow records received.",
|
||||
},
|
||||
[]string{"exporter", "version", "type"},
|
||||
)
|
||||
nd.metrics.templatesStats = nd.r.CounterVec(
|
||||
nd.metrics.templates = nd.r.CounterVec(
|
||||
reporter.CounterOpts{
|
||||
Name: "templates_total",
|
||||
Help: "Netflows Template count.",
|
||||
Help: "Number of NetFlow templates received.",
|
||||
},
|
||||
[]string{"exporter", "version", "obs_domain_id", "template_id", "type"},
|
||||
)
|
||||
@@ -115,7 +115,7 @@ func (s *templateSystem) AddTemplate(version uint16, obsDomainID uint32, templat
|
||||
typeStr = "template"
|
||||
}
|
||||
|
||||
s.nd.metrics.templatesStats.WithLabelValues(
|
||||
s.nd.metrics.templates.WithLabelValues(
|
||||
s.key,
|
||||
strconv.Itoa(int(version)),
|
||||
strconv.Itoa(int(obsDomainID)),
|
||||
@@ -220,8 +220,8 @@ func (nd *Decoder) Decode(in decoder.RawFlow, options decoder.Option, bf *schema
|
||||
return 0, fmt.Errorf("NetFlow v5 decoding error: %w", err)
|
||||
}
|
||||
versionStr = "5"
|
||||
nd.metrics.setStatsSum.WithLabelValues(key, versionStr, "PDU").Inc()
|
||||
nd.metrics.setRecordsStatsSum.WithLabelValues(key, versionStr, "PDU").
|
||||
nd.metrics.sets.WithLabelValues(key, versionStr, "PDU").Inc()
|
||||
nd.metrics.records.WithLabelValues(key, versionStr, "PDU").
|
||||
Add(float64(len(packetNFv5.Records)))
|
||||
if options.TimestampSource == pb.RawFlow_TS_NETFLOW_PACKET || options.TimestampSource == pb.RawFlow_TS_NETFLOW_FIRST_SWITCHED {
|
||||
ts = uint64(packetNFv5.UnixSecs)
|
||||
@@ -267,39 +267,39 @@ func (nd *Decoder) Decode(in decoder.RawFlow, options decoder.Option, bf *schema
|
||||
nd.decodeNFv9IPFIX(version, obsDomainID, flowSets, sampling, ts, sysUptime, options, bf, finalize2)
|
||||
default:
|
||||
nd.errLogger.Warn().Str("exporter", key).Msg("unknown NetFlow version")
|
||||
nd.metrics.stats.WithLabelValues(key, "unknown").
|
||||
nd.metrics.packets.WithLabelValues(key, "unknown").
|
||||
Inc()
|
||||
return 0, errors.New("unkown NetFlow version")
|
||||
}
|
||||
nd.metrics.stats.WithLabelValues(key, versionStr).Inc()
|
||||
nd.metrics.packets.WithLabelValues(key, versionStr).Inc()
|
||||
|
||||
nb := 0
|
||||
for _, fs := range flowSets {
|
||||
switch fsConv := fs.(type) {
|
||||
case netflow.TemplateFlowSet:
|
||||
nd.metrics.setStatsSum.WithLabelValues(key, versionStr, "TemplateFlowSet").
|
||||
nd.metrics.sets.WithLabelValues(key, versionStr, "TemplateFlowSet").
|
||||
Inc()
|
||||
nd.metrics.setRecordsStatsSum.WithLabelValues(key, versionStr, "TemplateFlowSet").
|
||||
nd.metrics.records.WithLabelValues(key, versionStr, "TemplateFlowSet").
|
||||
Add(float64(len(fsConv.Records)))
|
||||
case netflow.IPFIXOptionsTemplateFlowSet:
|
||||
nd.metrics.setStatsSum.WithLabelValues(key, versionStr, "OptionsTemplateFlowSet").
|
||||
nd.metrics.sets.WithLabelValues(key, versionStr, "OptionsTemplateFlowSet").
|
||||
Inc()
|
||||
nd.metrics.setRecordsStatsSum.WithLabelValues(key, versionStr, "OptionsTemplateFlowSet").
|
||||
nd.metrics.records.WithLabelValues(key, versionStr, "OptionsTemplateFlowSet").
|
||||
Add(float64(len(fsConv.Records)))
|
||||
case netflow.NFv9OptionsTemplateFlowSet:
|
||||
nd.metrics.setStatsSum.WithLabelValues(key, versionStr, "OptionsTemplateFlowSet").
|
||||
nd.metrics.sets.WithLabelValues(key, versionStr, "OptionsTemplateFlowSet").
|
||||
Inc()
|
||||
nd.metrics.setRecordsStatsSum.WithLabelValues(key, versionStr, "OptionsTemplateFlowSet").
|
||||
nd.metrics.records.WithLabelValues(key, versionStr, "OptionsTemplateFlowSet").
|
||||
Add(float64(len(fsConv.Records)))
|
||||
case netflow.OptionsDataFlowSet:
|
||||
nd.metrics.setStatsSum.WithLabelValues(key, versionStr, "OptionsDataFlowSet").
|
||||
nd.metrics.sets.WithLabelValues(key, versionStr, "OptionsDataFlowSet").
|
||||
Inc()
|
||||
nd.metrics.setRecordsStatsSum.WithLabelValues(key, versionStr, "OptionsDataFlowSet").
|
||||
nd.metrics.records.WithLabelValues(key, versionStr, "OptionsDataFlowSet").
|
||||
Add(float64(len(fsConv.Records)))
|
||||
case netflow.DataFlowSet:
|
||||
nd.metrics.setStatsSum.WithLabelValues(key, versionStr, "DataFlowSet").
|
||||
nd.metrics.sets.WithLabelValues(key, versionStr, "DataFlowSet").
|
||||
Inc()
|
||||
nd.metrics.setRecordsStatsSum.WithLabelValues(key, versionStr, "DataFlowSet").
|
||||
nd.metrics.records.WithLabelValues(key, versionStr, "DataFlowSet").
|
||||
Add(float64(len(fsConv.Records)))
|
||||
nb += len(fsConv.Records)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user