From 529e79bb574fd335e0dbec1e4f4464008216b98b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Vlk?= Date: Fri, 14 Oct 2022 14:10:02 +0200 Subject: [PATCH] feat: prometheusIngester sends user-agent header (#95) * feat: prometheusIngester sends user-agent header Co-authored-by: Vlk, Ondrej --- CHANGELOG.md | 5 +++++ cmd/slo_exporter.go | 2 +- pkg/prometheus_ingester/prometheus_ingester.go | 10 +++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ee314d..968b1b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## Unreleased + +## [v6.12.1] 2022-10-14 +### Added +- [#95](https://github.com/seznam/slo-exporter/pull/95) prometheusIngester sends user-agent header + ### Fixed - [#96](https://github.com/seznam/slo-exporter/pull/96) prometheusIngester headers from environment value now works diff --git a/cmd/slo_exporter.go b/cmd/slo_exporter.go index 8925059..5a8a265 100644 --- a/cmd/slo_exporter.go +++ b/cmd/slo_exporter.go @@ -68,7 +68,7 @@ func moduleFactory(moduleName string, logger logrus.FieldLogger, conf *viper.Vip case "tailer": return tailer.NewFromViper(conf, logger) case "prometheusIngester": - return prometheus_ingester.NewFromViper(conf, logger) + return prometheus_ingester.NewFromViper(conf, logger, version) case "kafkaIngester": return kafka_ingester.NewFromViper(conf, logger) case "envoyAccessLogServer": diff --git a/pkg/prometheus_ingester/prometheus_ingester.go b/pkg/prometheus_ingester/prometheus_ingester.go index 5a6166d..0538755 100644 --- a/pkg/prometheus_ingester/prometheus_ingester.go +++ b/pkg/prometheus_ingester/prometheus_ingester.go @@ -171,11 +171,19 @@ func (i *PrometheusIngester) OutputChannel() chan *event.Raw { return i.outputChannel } -func NewFromViper(viperAppConfig *viper.Viper, logger logrus.FieldLogger) (*PrometheusIngester, error) { +func NewFromViper(viperAppConfig *viper.Viper, logger logrus.FieldLogger, appVersion string) (*PrometheusIngester, error) { config := PrometheusIngesterConfig{} + if err := viperAppConfig.UnmarshalExact(&config); err != nil { return nil, fmt.Errorf("failed to load configuration: %w", err) } + + userAgent := "slo-exporter/" + appVersion + config.HttpHeaders = append(config.HttpHeaders, httpHeader{ + Name: "user-agent", + Value: &userAgent, + }) + if config.Staleness == time.Duration(0) { config.Staleness = defaultStaleness }