From 189e4658d587e2217e273c4b9580ef4144fb64fe Mon Sep 17 00:00:00 2001 From: Matt Durham Date: Wed, 13 Oct 2021 15:27:07 -0400 Subject: [PATCH 1/3] Update statsd to latest release and change a few things around the cache --- go.mod | 5 +--- go.sum | 5 ++-- .../statsd_exporter/statsd_exporter.go | 30 ++++++++++++++----- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index b396ed9ad10e..319e660fc73f 100644 --- a/go.mod +++ b/go.mod @@ -143,10 +143,7 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersi replace go.opentelemetry.io/collector => github.com/grafana/opentelemetry-collector v0.4.1-0.20211008102704-a5d23001cb71 // Pin prometheus dependencies -replace ( - github.com/prometheus/common => github.com/prometheus/common v0.23.0 - github.com/prometheus/statsd_exporter => github.com/prometheus/statsd_exporter v0.18.1-0.20201124082027-8b2b4c1a2b49 -) +replace github.com/prometheus/common => github.com/prometheus/common v0.23.0 // Jaeger v1.16.0 can't be run with go@1.16 (https://github.com/jaegertracing/jaeger/issues/3268) // Problem was fixed in https://github.com/jaegertracing/jaeger/issues/3268 diff --git a/go.sum b/go.sum index b15f1feeea69..8dd3a4bfb9eb 100644 --- a/go.sum +++ b/go.sum @@ -1784,8 +1784,9 @@ github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.6.1-0.20210313121648-b565fefb1664 h1:iPfnlmqQag8dZBuhfBlGOWunH3dg/LmHObW/aC283hA= github.com/prometheus/procfs v0.6.1-0.20210313121648-b565fefb1664/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/statsd_exporter v0.18.1-0.20201124082027-8b2b4c1a2b49 h1:09eKR7yabKQRcx0pUHQrf2eXika/0VTPknOsbr4nXvg= -github.com/prometheus/statsd_exporter v0.18.1-0.20201124082027-8b2b4c1a2b49/go.mod h1:YL3FWCG8JBBtaUSxAg4Gz2ZYu22bS84XM89ZQXXTWmQ= +github.com/prometheus/statsd_exporter v0.21.0/go.mod h1:rbT83sZq2V+p73lHhPZfMc3MLCHmSHelCh9hSGYNLTQ= +github.com/prometheus/statsd_exporter v0.22.2 h1:mZkkLY25lWw4JmYsvO43MaKcTKshRE6UUC/nkdLgD9I= +github.com/prometheus/statsd_exporter v0.22.2/go.mod h1:N4Z1+iSqc9rnxlT1N8Qn3l65Vzb5t4Uq0jpg8nxyhio= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rafaeljusto/redigomock v0.0.0-20190202135759-257e089e14a1/go.mod h1:JaY6n2sDr+z2WTsXkOmNRUfDy6FN0L6Nk7x06ndm4tY= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= diff --git a/pkg/integrations/statsd_exporter/statsd_exporter.go b/pkg/integrations/statsd_exporter/statsd_exporter.go index cd68a5f1bb79..6a5b9eaee4a0 100644 --- a/pkg/integrations/statsd_exporter/statsd_exporter.go +++ b/pkg/integrations/statsd_exporter/statsd_exporter.go @@ -10,6 +10,10 @@ import ( "strconv" "time" + "github.com/prometheus/statsd_exporter/pkg/mappercache/randomreplacement" + + "github.com/prometheus/statsd_exporter/pkg/mappercache/lru" + "github.com/go-kit/kit/log" "github.com/go-kit/kit/log/level" "github.com/grafana/agent/pkg/integrations" @@ -23,6 +27,7 @@ import ( "github.com/prometheus/statsd_exporter/pkg/line" "github.com/prometheus/statsd_exporter/pkg/listener" "github.com/prometheus/statsd_exporter/pkg/mapper" + _ "github.com/prometheus/statsd_exporter/pkg/mappercache" "gopkg.in/yaml.v2" ) @@ -113,28 +118,39 @@ func New(log log.Logger, c *Config) (integrations.Integration, error) { return nil, fmt.Errorf("failed to create metrics for network listeners: %w", err) } - cacheOption := mapper.WithCacheType(c.CacheType) - if c.ListenUDP == "" && c.ListenTCP == "" && c.ListenUnixgram == "" { return nil, fmt.Errorf("at least one of UDP/TCP/Unixgram listeners must be used") } + statsdMapper := &mapper.MetricMapper{MappingsCount: m.MappingsCount} - mapper := &mapper.MetricMapper{MappingsCount: m.MappingsCount} if c.MappingConfig != nil { cfgBytes, err := yaml.Marshal(c.MappingConfig) if err != nil { return nil, fmt.Errorf("failed to serialize mapping config: %w", err) } - err = mapper.InitFromYAMLString(string(cfgBytes), c.CacheSize, cacheOption) + err = statsdMapper.InitFromYAMLString(string(cfgBytes)) if err != nil { return nil, fmt.Errorf("failed to load mapping config: %w", err) } - } else { - mapper.InitCache(c.CacheSize, cacheOption) + } + var cache mapper.MetricMapperCache + if c.CacheType == "lru" { + cache, err = lru.NewMetricMapperLRUCache(reg, c.CacheSize) + if err != nil { + return nil, err + } + } else if c.CacheType == "random" { + cache, err = randomreplacement.NewMetricMapperRRCache(reg, c.CacheSize) + if err != nil { + return nil, err + } + } + if cache != nil { + statsdMapper.UseCache(cache) } - e := exporter.NewExporter(reg, mapper, log, m.EventsActions, m.EventsUnmapped, m.ErrorEventStats, m.EventStats, m.ConflictingEventStats, m.MetricsCount) + e := exporter.NewExporter(reg, statsdMapper, log, m.EventsActions, m.EventsUnmapped, m.ErrorEventStats, m.EventStats, m.ConflictingEventStats, m.MetricsCount) if err := reg.Register(version.NewCollector("statsd_exporter")); err != nil { return nil, fmt.Errorf("couldn't register version metrics: %w", err) From c6222cf69e239f962b2a78b262ea8d7228c5862c Mon Sep 17 00:00:00 2001 From: Matt Durham Date: Wed, 13 Oct 2021 15:34:20 -0400 Subject: [PATCH 2/3] standardize verbiage --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 654d1764aac4..5760e39f19fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,9 @@ - [ENHANCEMENT] Updated mongodb_exporter to v0.20.7 (@rfratto) -- [ENHANCEMENT] Upgrade OTel to v0.36 (@mapno) +- [ENHANCEMENT] Updated OTel to v0.36 (@mapno) + +- [ENHANCEMENT] Updated statsd_exporter to v0.22.2 (@mattdurham) - [BUGFIX] Sanitize autologged Loki labels by replacing invalid characters with underscores (@mapno) From 69ff434e3e2903c457363755d0a97958c93ddb32 Mon Sep 17 00:00:00 2001 From: Matt Durham Date: Wed, 13 Oct 2021 16:18:25 -0400 Subject: [PATCH 3/3] remove unneeded mappercache --- pkg/integrations/statsd_exporter/statsd_exporter.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/integrations/statsd_exporter/statsd_exporter.go b/pkg/integrations/statsd_exporter/statsd_exporter.go index 6a5b9eaee4a0..f853ffbdcb8b 100644 --- a/pkg/integrations/statsd_exporter/statsd_exporter.go +++ b/pkg/integrations/statsd_exporter/statsd_exporter.go @@ -27,7 +27,6 @@ import ( "github.com/prometheus/statsd_exporter/pkg/line" "github.com/prometheus/statsd_exporter/pkg/listener" "github.com/prometheus/statsd_exporter/pkg/mapper" - _ "github.com/prometheus/statsd_exporter/pkg/mappercache" "gopkg.in/yaml.v2" )