diff --git a/NOTICE.txt b/NOTICE.txt index 4a414ab3b762..75d2084f6e96 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -12518,11 +12518,11 @@ SOFTWARE -------------------------------------------------------------------------------- Dependency : github.com/elastic/elastic-agent-libs -Version: v0.21.5 +Version: v0.23.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-libs@v0.21.5/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-libs@v0.23.0/LICENSE: Apache License Version 2.0, January 2004 @@ -12729,11 +12729,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-l -------------------------------------------------------------------------------- Dependency : github.com/elastic/elastic-agent-system-metrics -Version: v0.11.11 +Version: v0.13.2 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-system-metrics@v0.11.11/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-system-metrics@v0.13.2/LICENSE.txt: Apache License Version 2.0, January 2004 diff --git a/filebeat/input/filestream/internal/input-logfile/metrics.go b/filebeat/input/filestream/internal/input-logfile/metrics.go index edc6e9159346..7e159960a930 100644 --- a/filebeat/input/filestream/internal/input-logfile/metrics.go +++ b/filebeat/input/filestream/internal/input-logfile/metrics.go @@ -21,6 +21,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -82,7 +83,7 @@ func NewMetrics(id string) *Metrics { HarvesterRunning: monitoring.NewInt(harvesterMetrics, "running"), HarvesterOpenFiles: monitoring.NewInt(harvesterMetrics, "open_files"), } - _ = adapter.NewGoMetrics(reg, "processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "processing_time", logp.NewNopLogger(), adapter.Accept). Register("histogram", metrics.NewHistogram(m.ProcessingTime)) return &m diff --git a/filebeat/input/kafka/config.go b/filebeat/input/kafka/config.go index 019f75de1d42..6c3b4661832d 100644 --- a/filebeat/input/kafka/config.go +++ b/filebeat/input/kafka/config.go @@ -209,6 +209,7 @@ func newSaramaConfig(config kafkaInputConfig) (*sarama.Config, error) { k.MetricRegistry = adapter.GetGoMetrics( monitoring.Default, "filebeat.inputs.kafka", + logp.NewLogger(""), adapter.Rename("incoming-byte-rate", "bytes_read"), adapter.Rename("outgoing-byte-rate", "bytes_write"), adapter.GoMetricsNilify, diff --git a/filebeat/input/netmetrics/tcp.go b/filebeat/input/netmetrics/tcp.go index 19accfc2500e..720bb0815409 100644 --- a/filebeat/input/netmetrics/tcp.go +++ b/filebeat/input/netmetrics/tcp.go @@ -67,9 +67,9 @@ func NewTCP(inputName string, id string, device string, poll time.Duration, log arrivalPeriod: metrics.NewUniformSample(1024), processingTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "arrival_period", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "arrival_period", logp.NewNopLogger(), adapter.Accept). Register("histogram", metrics.NewHistogram(out.arrivalPeriod)) - _ = adapter.NewGoMetrics(reg, "processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "processing_time", log, adapter.Accept). Register("histogram", metrics.NewHistogram(out.processingTime)) out.device.Set(device) diff --git a/filebeat/input/netmetrics/udp.go b/filebeat/input/netmetrics/udp.go index de2344f1efd1..8b539a5715fa 100644 --- a/filebeat/input/netmetrics/udp.go +++ b/filebeat/input/netmetrics/udp.go @@ -71,9 +71,9 @@ func NewUDP(inputName string, id string, device string, buflen uint64, poll time arrivalPeriod: metrics.NewUniformSample(1024), processingTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "arrival_period", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "arrival_period", logp.NewNopLogger(), adapter.Accept). Register("histogram", metrics.NewHistogram(out.arrivalPeriod)) - _ = adapter.NewGoMetrics(reg, "processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "processing_time", log, adapter.Accept). Register("histogram", metrics.NewHistogram(out.processingTime)) out.device.Set(device) diff --git a/filebeat/input/unix/input.go b/filebeat/input/unix/input.go index 65414d65de9f..cb79d8e1d645 100644 --- a/filebeat/input/unix/input.go +++ b/filebeat/input/unix/input.go @@ -163,9 +163,9 @@ func newInputMetrics(id, path string, log *logp.Logger) *inputMetrics { arrivalPeriod: metrics.NewUniformSample(1024), processingTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "arrival_period", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "arrival_period", log, adapter.Accept). Register("histogram", metrics.NewHistogram(out.arrivalPeriod)) - _ = adapter.NewGoMetrics(reg, "processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "processing_time", log, adapter.Accept). Register("histogram", metrics.NewHistogram(out.processingTime)) out.path.Set(path) diff --git a/go.mod b/go.mod index 4c758a96ab2e..2025f71e7d6f 100644 --- a/go.mod +++ b/go.mod @@ -178,8 +178,8 @@ require ( github.com/elastic/bayeux v1.0.5 github.com/elastic/ebpfevents v0.7.0 github.com/elastic/elastic-agent-autodiscover v0.9.2 - github.com/elastic/elastic-agent-libs v0.21.5 - github.com/elastic/elastic-agent-system-metrics v0.11.11 + github.com/elastic/elastic-agent-libs v0.23.0 + github.com/elastic/elastic-agent-system-metrics v0.13.2 github.com/elastic/go-elasticsearch/v8 v8.17.0 github.com/elastic/go-quark v0.2.0 github.com/elastic/go-sfdc v0.0.0-20241010131323-8e176480d727 diff --git a/go.sum b/go.sum index aa192351be2f..83f07202a210 100644 --- a/go.sum +++ b/go.sum @@ -338,10 +338,10 @@ github.com/elastic/elastic-agent-autodiscover v0.9.2 h1:eBmru2v66HRRHOFf89rDl9OZ github.com/elastic/elastic-agent-autodiscover v0.9.2/go.mod h1:RNaHnOTYfNptSTQUyZYnjypxmrR5AaE6BIap/175F5c= github.com/elastic/elastic-agent-client/v7 v7.15.0 h1:nDB7v8TBoNuD6IIzC3z7Q0y+7bMgXoT2DsHfolO2CHE= github.com/elastic/elastic-agent-client/v7 v7.15.0/go.mod h1:6h+f9QdIr3GO2ODC0Y8+aEXRwzbA5W4eV4dd/67z7nI= -github.com/elastic/elastic-agent-libs v0.21.5 h1:YTMwaBPgOPvQnxBPv7fLpUqjw2HgY3ymC9TwdzdOD8U= -github.com/elastic/elastic-agent-libs v0.21.5/go.mod h1:xSeIP3NtOIT4N2pPS4EyURmS1Q8mK0lWZ8Wd1Du6q3w= -github.com/elastic/elastic-agent-system-metrics v0.11.11 h1:Qjh3Zef23PfGlG91AF+9ciNLNQf/8cDJ4CalnLZtV3g= -github.com/elastic/elastic-agent-system-metrics v0.11.11/go.mod h1:GNqmKfvOt8PwORjbS6GllNdMfkLpOWyTa7P8oQq4E5o= +github.com/elastic/elastic-agent-libs v0.23.0 h1:xpMKkrw59QUYWUx/q2TMpJU+6vwB3Mw1VPhRPcGhBMo= +github.com/elastic/elastic-agent-libs v0.23.0/go.mod h1:xSeIP3NtOIT4N2pPS4EyURmS1Q8mK0lWZ8Wd1Du6q3w= +github.com/elastic/elastic-agent-system-metrics v0.13.2 h1:R4ogKHESuWhWTtopnw/aHnBxxSZbxd7KHV4GefdwT2M= +github.com/elastic/elastic-agent-system-metrics v0.13.2/go.mod h1:ezM1kzDUT+vWXFh5oK8QXB/AEB0UoLWqWA8rkRicFFo= github.com/elastic/elastic-transport-go/v8 v8.6.1 h1:h2jQRqH6eLGiBSN4eZbQnJLtL4bC5b4lfVFRjw2R4e4= github.com/elastic/elastic-transport-go/v8 v8.6.1/go.mod h1:YLHer5cj0csTzNFXoNQ8qhtGY1GTvSqPnKWKaqQE3Hk= github.com/elastic/fsevents v0.0.0-20181029231046-e1d381a4d270 h1:cWPqxlPtir4RoQVCpGSRXmLqjEHpJKbR60rxh1nQZY4= diff --git a/libbeat/outputs/elasticsearch/client_test.go b/libbeat/outputs/elasticsearch/client_test.go index 00485bb2e83e..852a3e59bd7d 100644 --- a/libbeat/outputs/elasticsearch/client_test.go +++ b/libbeat/outputs/elasticsearch/client_test.go @@ -90,7 +90,7 @@ func TestPublish(t *testing.T) { reg := monitoring.NewRegistry() client, err := NewClient( clientSettings{ - observer: outputs.NewStats(reg), + observer: outputs.NewStats(reg, logp.NewNopLogger()), connection: eslegclient.ConnectionSettings{URL: url}, indexSelector: testIndexSelector{}, }, diff --git a/libbeat/outputs/kafka/client_test.go b/libbeat/outputs/kafka/client_test.go index 50cc18ccf5cc..724093ced1d3 100644 --- a/libbeat/outputs/kafka/client_test.go +++ b/libbeat/outputs/kafka/client_test.go @@ -51,7 +51,7 @@ func TestClientShutdownPanic(t *testing.T) { beat.Info{ Beat: "libbeat", IndexPrefix: "testbeat"}, - outputs.NewStats(monitoring.NewRegistry()), cfg) + outputs.NewStats(monitoring.NewRegistry(), logger), cfg) require.NoError(t, err, "could not create kafka output") b := outest.NewBatch( diff --git a/libbeat/outputs/kafka/config.go b/libbeat/outputs/kafka/config.go index c5a507f6293e..845be5a117e8 100644 --- a/libbeat/outputs/kafka/config.go +++ b/libbeat/outputs/kafka/config.go @@ -313,6 +313,7 @@ func newSaramaConfig(log *logp.Logger, config *kafkaConfig) (*sarama.Config, err k.MetricRegistry = adapter.GetGoMetrics( monitoring.Default, "libbeat.outputs", + log, adapter.Rename("incoming-byte-rate", "read.bytes"), adapter.Rename("outgoing-byte-rate", "write.bytes"), adapter.Rename("request-latency-in-ms", "write.latency"), diff --git a/libbeat/outputs/metrics.go b/libbeat/outputs/metrics.go index 7e47c6e7ab9a..a8004615def4 100644 --- a/libbeat/outputs/metrics.go +++ b/libbeat/outputs/metrics.go @@ -22,6 +22,7 @@ import ( "github.com/rcrowley/go-metrics" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -83,7 +84,7 @@ type Stats struct { // NewStats creates a new Stats instance using a backing monitoring registry. // This function will create and register a number of metrics with the registry passed. // The registry must not be null. -func NewStats(reg *monitoring.Registry) *Stats { +func NewStats(reg *monitoring.Registry, logger *logp.Logger) *Stats { obj := &Stats{ eventsBatches: monitoring.NewUint(reg, "events.batches"), eventsTotal: monitoring.NewUint(reg, "events.total"), @@ -105,7 +106,7 @@ func NewStats(reg *monitoring.Registry) *Stats { sendLatencyMillis: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "write.latency", adapter.Accept).Register("histogram", metrics.NewHistogram(obj.sendLatencyMillis)) + _ = adapter.NewGoMetrics(reg, "write.latency", logp.NewNopLogger(), adapter.Accept).Register("histogram", metrics.NewHistogram(obj.sendLatencyMillis)) return obj } diff --git a/libbeat/processors/dns/dns.go b/libbeat/processors/dns/dns.go index 48b08ab671c9..7e9b9d70b356 100644 --- a/libbeat/processors/dns/dns.go +++ b/libbeat/processors/dns/dns.go @@ -64,7 +64,7 @@ func New(cfg *conf.C) (beat.Processor, error) { ) log.Debugf("DNS processor config: %+v", c) - resolver, err := newMiekgResolver(metrics, c.Timeout, c.Transport, c.Nameservers...) + resolver, err := newMiekgResolver(metrics, c.Timeout, c.Transport, log, c.Nameservers...) if err != nil { return nil, err } diff --git a/libbeat/processors/dns/resolver.go b/libbeat/processors/dns/resolver.go index eb3cfb5ef03d..ed67bf8e4450 100644 --- a/libbeat/processors/dns/resolver.go +++ b/libbeat/processors/dns/resolver.go @@ -30,6 +30,7 @@ import ( "github.com/miekg/dns" "github.com/rcrowley/go-metrics" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -56,6 +57,7 @@ type miekgResolver struct { registry *monitoring.Registry nsStatsMutex sync.RWMutex nsStats map[string]*nameserverStats + logger *logp.Logger } type nameserverStats struct { @@ -66,7 +68,7 @@ type nameserverStats struct { // newMiekgResolver returns a new miekgResolver. It returns an error if no // nameserver are given and none can be read from /etc/resolv.conf. -func newMiekgResolver(reg *monitoring.Registry, timeout time.Duration, transport string, servers ...string) (*miekgResolver, error) { +func newMiekgResolver(reg *monitoring.Registry, timeout time.Duration, transport string, logger *logp.Logger, servers ...string) (*miekgResolver, error) { // Use /etc/resolv.conf if no nameservers are given. (Won't work for Windows). if len(servers) == 0 { config, err := dns.ClientConfigFromFile(etcResolvConf) @@ -118,6 +120,7 @@ func newMiekgResolver(reg *monitoring.Registry, timeout time.Duration, transport servers: servers, registry: reg, nsStats: map[string]*nameserverStats{}, + logger: logger, }, nil } @@ -249,7 +252,7 @@ func (res *miekgResolver) getOrCreateNameserverStats(ns string) *nameserverStats } //nolint:errcheck // Register should never fail because this is a new empty registry. - adapter.NewGoMetrics(reg, "request_duration", adapter.Accept). + adapter.NewGoMetrics(reg, "request_duration", res.logger, adapter.Accept). Register("histogram", metrics.NewHistogram(stats.requestDuration)) res.nsStats[ns] = stats diff --git a/libbeat/processors/dns/resolver_test.go b/libbeat/processors/dns/resolver_test.go index 2f73164c7441..b9b5e50e8e20 100644 --- a/libbeat/processors/dns/resolver_test.go +++ b/libbeat/processors/dns/resolver_test.go @@ -28,6 +28,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" ) @@ -38,7 +39,7 @@ func TestNewMiekgResolverWithIPv6(t *testing.T) { const addr = `fe80::1%en0` // Example IPv6 address with zone index. reg := monitoring.NewRegistry() - _, err := newMiekgResolver(reg.NewRegistry(logName), 0, "udp", addr) + _, err := newMiekgResolver(reg.NewRegistry(logName), 0, "udp", logp.NewNopLogger(), addr) assert.NoError(t, err) } @@ -52,12 +53,8 @@ func TestMiekgResolverLookupPTR(t *testing.T) { }() reg := monitoring.NewRegistry() - res, err := newMiekgResolver(reg.NewRegistry(logName), 0, "udp", addr) - if err != nil { - t.Fatal(err) - } - - // Success + res, err := newMiekgResolver(reg.NewRegistry(logName), 0, "udp", logp.NewNopLogger(), addr) + t.Fatal(err) ptr, err := res.Lookup("8.8.8.8", typePTR) if err != nil { t.Fatal(err) @@ -103,7 +100,7 @@ func TestMiekgResolverLookupPTRTLS(t *testing.T) { reg := monitoring.NewRegistry() - res, err := newMiekgResolver(reg.NewRegistry(logName), 0, "tls", addr) + res, err := newMiekgResolver(reg.NewRegistry(logName), 0, "tls", logp.NewNopLogger(), addr) if err != nil { t.Fatal(err) } diff --git a/libbeat/processors/script/javascript/javascript.go b/libbeat/processors/script/javascript/javascript.go index 527bd03e92ce..5747992f13c1 100644 --- a/libbeat/processors/script/javascript/javascript.go +++ b/libbeat/processors/script/javascript/javascript.go @@ -33,6 +33,7 @@ import ( "github.com/elastic/beats/v7/libbeat/beat" "github.com/elastic/beats/v7/libbeat/common" "github.com/elastic/elastic-agent-libs/config" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" "github.com/elastic/elastic-agent-libs/paths" @@ -228,7 +229,7 @@ func getStats(id string, reg *monitoring.Registry) *processorStats { exceptions: monitoring.NewInt(processorReg, "exceptions"), processTime: metrics.NewUniformSample(2048), } - _ = adapter.NewGoMetrics(processorReg, "histogram", adapter.Accept). + _ = adapter.NewGoMetrics(processorReg, "histogram", logp.NewLogger(""), adapter.Accept). Register("process_time", metrics.NewHistogram(stats.processTime)) return stats diff --git a/libbeat/publisher/pipeline/controller_test.go b/libbeat/publisher/pipeline/controller_test.go index cc7129c398b4..7e86911ac252 100644 --- a/libbeat/publisher/pipeline/controller_test.go +++ b/libbeat/publisher/pipeline/controller_test.go @@ -123,6 +123,7 @@ func TestSetEmptyOutputsSendsNilChannel(t *testing.T) { // Just fill out enough to confirm what's sent to the event consumer, // we don't want to start up real helper routines. controller := outputController{ + beat: beat.Info{}, consumer: &eventConsumer{ targetChan: make(chan consumerTarget, 2), }, diff --git a/libbeat/publisher/pipeline/module.go b/libbeat/publisher/pipeline/module.go index 934d3c0db3da..286d6a27cda2 100644 --- a/libbeat/publisher/pipeline/module.go +++ b/libbeat/publisher/pipeline/module.go @@ -133,7 +133,7 @@ func loadOutput( } else { metrics = monitors.Metrics.NewRegistry("output") } - outStats = outputs.NewStats(metrics) + outStats = outputs.NewStats(metrics, monitors.Logger) } outName, out, err := makeOutput(outStats) diff --git a/metricbeat/module/linux/iostat/iostat.go b/metricbeat/module/linux/iostat/iostat.go index 14604f8aea42..174e63313a8a 100644 --- a/metricbeat/module/linux/iostat/iostat.go +++ b/metricbeat/module/linux/iostat/iostat.go @@ -69,7 +69,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). func (m *MetricSet) Fetch(report mb.ReporterV2) error { - IOstats, err := diskio.IOCounters(m.includeDevices...) + IOstats, err := diskio.IOCounters(m.Logger(), m.includeDevices...) if err != nil { return fmt.Errorf("disk io counters: %w", err) } diff --git a/metricbeat/module/system/diskio/diskio.go b/metricbeat/module/system/diskio/diskio.go index 068581991204..f266e7e6c80b 100644 --- a/metricbeat/module/system/diskio/diskio.go +++ b/metricbeat/module/system/diskio/diskio.go @@ -71,7 +71,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch fetches disk IO metrics from the OS. func (m *MetricSet) Fetch(r mb.ReporterV2) error { - stats, err := diskio.IOCounters(m.includeDevices...) + stats, err := diskio.IOCounters(m.Logger(), m.includeDevices...) if err != nil { return fmt.Errorf("disk io counters: %w", err) } diff --git a/metricbeat/module/system/load/load.go b/metricbeat/module/system/load/load.go index a28571124f11..96a330f337e7 100644 --- a/metricbeat/module/system/load/load.go +++ b/metricbeat/module/system/load/load.go @@ -50,7 +50,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch fetches system load metrics. func (m *MetricSet) Fetch(r mb.ReporterV2) error { - load, err := cpu.Load() + load, err := cpu.LoadWithLogger(m.Logger()) if err != nil { return fmt.Errorf("failed to get CPU load values: %w", err) } diff --git a/metricbeat/module/system/process/process.go b/metricbeat/module/system/process/process.go index c00e60f6bfd6..86dc72bfb59a 100644 --- a/metricbeat/module/system/process/process.go +++ b/metricbeat/module/system/process/process.go @@ -93,6 +93,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { RootfsMountpoint: sys, IgnoreRootCgroups: true, }, + Logger: base.Logger(), }, perCPU: config.IncludePerCPU, degradeOnPartial: degradedConf.DegradeOnPartial, diff --git a/packetbeat/protos/tcp/tcp.go b/packetbeat/protos/tcp/tcp.go index 1275c2a88110..6b872518af3f 100644 --- a/packetbeat/protos/tcp/tcp.go +++ b/packetbeat/protos/tcp/tcp.go @@ -439,9 +439,11 @@ func newInputMetrics(id, device string, ports map[uint16]protos.Protocol) *input arrivalPeriod: metrics.NewUniformSample(1024), processingTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "arrival_period", adapter.Accept). + + //TODO: use local logger here + _ = adapter.NewGoMetrics(reg, "arrival_period", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.arrivalPeriod)) - _ = adapter.NewGoMetrics(reg, "processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "processing_time", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.processingTime)) out.device.Set(device) diff --git a/packetbeat/protos/udp/udp.go b/packetbeat/protos/udp/udp.go index 8ed9ffd1c35d..986ff2a205e0 100644 --- a/packetbeat/protos/udp/udp.go +++ b/packetbeat/protos/udp/udp.go @@ -168,9 +168,11 @@ func newInputMetrics(id, device string, ports map[uint16]protos.Protocol) *input arrivalPeriod: metrics.NewUniformSample(1024), processingTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "arrival_period", adapter.Accept). + + // TODO: https://github.com/elastic/ingest-dev/issues/6000 + _ = adapter.NewGoMetrics(reg, "arrival_period", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.arrivalPeriod)) - _ = adapter.NewGoMetrics(reg, "processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "processing_time", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.processingTime)) out.device.Set(device) diff --git a/winlogbeat/eventlog/wineventlog.go b/winlogbeat/eventlog/wineventlog.go index ff103227fb6f..e3baa4420a57 100644 --- a/winlogbeat/eventlog/wineventlog.go +++ b/winlogbeat/eventlog/wineventlog.go @@ -703,11 +703,11 @@ func newInputMetrics(name, id string) *inputMetrics { batchPeriod: metrics.NewUniformSample(1024), } out.name.Set(name) - _ = adapter.NewGoMetrics(reg, "received_events_count", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "received_events_count", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.batchSize)) - _ = adapter.NewGoMetrics(reg, "source_lag_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "source_lag_time", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.sourceLag)) - _ = adapter.NewGoMetrics(reg, "batch_read_period", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "batch_read_period", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.batchPeriod)) return out diff --git a/x-pack/filebeat/input/awss3/input_benchmark_test.go b/x-pack/filebeat/input/awss3/input_benchmark_test.go index d8b148ec9ecf..efd5a684ab15 100644 --- a/x-pack/filebeat/input/awss3/input_benchmark_test.go +++ b/x-pack/filebeat/input/awss3/input_benchmark_test.go @@ -339,7 +339,7 @@ func benchmarkInputS3(t *testing.T, numberOfWorkers int) testing.BenchmarkResult states, err := newStates(nil, store, "") assert.NoError(t, err, "states creation should succeed") - s3EventHandlerFactory := newS3ObjectProcessorFactory(metrics, s3API, config.FileSelectors, backupConfig{}) + s3EventHandlerFactory := newS3ObjectProcessorFactory(metrics, s3API, config.FileSelectors, backupConfig{}, logp.NewNopLogger()) s3Poller := &s3PollerInput{ log: logp.NewLogger(inputName), config: config, diff --git a/x-pack/filebeat/input/awss3/metrics.go b/x-pack/filebeat/input/awss3/metrics.go index 0ebcaeb1a92c..a38cf8047ecd 100644 --- a/x-pack/filebeat/input/awss3/metrics.go +++ b/x-pack/filebeat/input/awss3/metrics.go @@ -15,6 +15,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" "github.com/elastic/go-concert/timed" @@ -183,15 +184,16 @@ func newInputMetrics(id string, optionalParent *monitoring.Registry, maxWorkers // Initializing the sqs_messages_waiting_gauge value to -1 so that we can distinguish between no messages waiting (0) and never collected / error collecting (-1). out.sqsMessagesWaiting.Set(int64(-1)) - adapter.NewGoMetrics(reg, "sqs_message_processing_time", adapter.Accept). + logger := logp.NewLogger("") + adapter.NewGoMetrics(reg, "sqs_message_processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.sqsMessageProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "sqs_lag_time", adapter.Accept). + adapter.NewGoMetrics(reg, "sqs_lag_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.sqsLagTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "s3_object_processing_time", adapter.Accept). + adapter.NewGoMetrics(reg, "s3_object_processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.s3ObjectProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "s3_object_size_in_bytes", adapter.Accept). + adapter.NewGoMetrics(reg, "s3_object_size_in_bytes", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.s3ObjectSizeInBytes)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "s3_events_per_object", adapter.Accept). + adapter.NewGoMetrics(reg, "s3_events_per_object", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.s3EventsPerObject)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. if maxWorkers > 0 { diff --git a/x-pack/filebeat/input/awss3/s3_input.go b/x-pack/filebeat/input/awss3/s3_input.go index ad20579aae49..428b61a4d81a 100644 --- a/x-pack/filebeat/input/awss3/s3_input.go +++ b/x-pack/filebeat/input/awss3/s3_input.go @@ -86,7 +86,7 @@ func (in *s3PollerInput) Run( in.metrics, in.s3, in.config.getFileSelectors(), - in.config.BackupConfig) + in.config.BackupConfig, in.log) in.run(ctx) diff --git a/x-pack/filebeat/input/awss3/s3_objects.go b/x-pack/filebeat/input/awss3/s3_objects.go index bb5a75733e13..4da9d1ea6813 100644 --- a/x-pack/filebeat/input/awss3/s3_objects.go +++ b/x-pack/filebeat/input/awss3/s3_objects.go @@ -65,7 +65,12 @@ const ( // retry backoff until the connection is healthy again. var errS3DownloadFailed = errors.New("S3 download failure") -func newS3ObjectProcessorFactory(metrics *inputMetrics, s3 s3API, sel []fileSelectorConfig, backupConfig backupConfig) *s3ObjectProcessorFactory { +func newS3ObjectProcessorFactory(metrics *inputMetrics, + s3 s3API, + sel []fileSelectorConfig, + backupConfig backupConfig, + logger *logp.Logger, +) *s3ObjectProcessorFactory { if metrics == nil { // Metrics are optional. Initialize a stub. metrics = newInputMetrics("", nil, 0) diff --git a/x-pack/filebeat/input/awss3/s3_objects_test.go b/x-pack/filebeat/input/awss3/s3_objects_test.go index e19adab53a59..ea2406b4b1b5 100644 --- a/x-pack/filebeat/input/awss3/s3_objects_test.go +++ b/x-pack/filebeat/input/awss3/s3_objects_test.go @@ -154,7 +154,7 @@ func TestS3ObjectProcessor(t *testing.T) { GetObject(gomock.Any(), gomock.Eq("us-east-1"), gomock.Eq(s3Event.S3.Bucket.Name), gomock.Eq(s3Event.S3.Object.Key)). Return(nil, errFakeConnectivityFailure) - s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupConfig{}) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupConfig{}, logp.NewNopLogger()) err := s3ObjProc.Create(ctx, s3Event).ProcessS3Object(logp.NewLogger(inputName), func(_ beat.Event) {}) require.Error(t, err) assert.True(t, errors.Is(err, errS3DownloadFailed), "expected errS3DownloadFailed") @@ -179,7 +179,7 @@ func TestS3ObjectProcessor(t *testing.T) { GetObject(gomock.Any(), gomock.Eq("us-east-1"), gomock.Eq(s3Event.S3.Bucket.Name), gomock.Eq(s3Event.S3.Object.Key)). Return(getObjOut, nil) - s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupConfig{}) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupConfig{}, logp.NewNopLogger()) err := s3ObjProc.Create(ctx, s3Event). ProcessS3Object(logptest.NewTestingLogger(t, inputName), func(_ beat.Event) {}) @@ -201,7 +201,7 @@ func TestS3ObjectProcessor(t *testing.T) { GetObject(gomock.Any(), gomock.Eq("us-east-1"), gomock.Eq(s3Event.S3.Bucket.Name), gomock.Eq(s3Event.S3.Object.Key)). Return(nil, nil) - s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupConfig{}) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupConfig{}, logp.NewNopLogger()) err := s3ObjProc.Create(ctx, s3Event).ProcessS3Object(logp.NewLogger(inputName), func(_ beat.Event) {}) require.Error(t, err) }) @@ -222,7 +222,7 @@ func TestS3ObjectProcessor(t *testing.T) { ) var events []beat.Event - s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupConfig{}) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupConfig{}, logp.NewNopLogger()) err := s3ObjProc.Create(ctx, s3Event).ProcessS3Object(logp.NewLogger(inputName), func(event beat.Event) { events = append(events, event) }) @@ -249,7 +249,7 @@ func TestS3ObjectProcessor(t *testing.T) { Return(nil, nil), ) - s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupCfg) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupCfg, logp.NewNopLogger()) err := s3ObjProc.Create(ctx, s3Event).FinalizeS3Object() require.NoError(t, err) }) @@ -277,7 +277,7 @@ func TestS3ObjectProcessor(t *testing.T) { Return(nil, nil), ) - s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupCfg) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupCfg, logp.NewNopLogger()) err := s3ObjProc.Create(ctx, s3Event).FinalizeS3Object() require.NoError(t, err) }) @@ -302,7 +302,7 @@ func TestS3ObjectProcessor(t *testing.T) { Return(nil, nil), ) - s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupCfg) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, nil, backupCfg, logp.NewNopLogger()) err := s3ObjProc.Create(ctx, s3Event).FinalizeS3Object() require.NoError(t, err) }) @@ -364,7 +364,7 @@ func TestProcessObjectMetricCollection(t *testing.T) { // metric recorder with zero workers metricRecorder := newInputMetrics(test.name, nil, 0) - objFactory := newS3ObjectProcessorFactory(metricRecorder, mockS3API, nil, backupConfig{}) + objFactory := newS3ObjectProcessorFactory(metricRecorder, mockS3API, nil, backupConfig{}, logp.NewNopLogger()) objHandler := objFactory.Create(ctx, s3Event) // when @@ -413,7 +413,7 @@ func _testProcessS3Object(t testing.TB, file, contentType string, numEvents int, Return(s3Resp, nil), ) - s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, selectors, backupConfig{}) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3API, selectors, backupConfig{}, logp.NewNopLogger()) err := s3ObjProc.Create(ctx, s3Event).ProcessS3Object( logp.NewLogger(inputName), func(event beat.Event) { events = append(events, event) }) diff --git a/x-pack/filebeat/input/awss3/s3_test.go b/x-pack/filebeat/input/awss3/s3_test.go index 5518a1808e1d..67d51b259beb 100644 --- a/x-pack/filebeat/input/awss3/s3_test.go +++ b/x-pack/filebeat/input/awss3/s3_test.go @@ -128,7 +128,7 @@ func TestS3Poller(t *testing.T) { GetObject(gomock.Any(), gomock.Eq(""), gomock.Eq(bucket), gomock.Eq("2024-02-08T08:35:00+00:02.json.gz")). Return(nil, errFakeConnectivityFailure) - s3ObjProc := newS3ObjectProcessorFactory(nil, mockAPI, nil, backupConfig{}) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockAPI, nil, backupConfig{}, logp.NewNopLogger()) states, err := newStates(nil, store, listPrefix) require.NoError(t, err, "states creation must succeed") @@ -269,7 +269,7 @@ func TestS3Poller(t *testing.T) { GetObject(gomock.Any(), gomock.Eq(""), gomock.Eq(bucket), gomock.Eq("key5")). Return(nil, errFakeConnectivityFailure) - s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3, nil, backupConfig{}) + s3ObjProc := newS3ObjectProcessorFactory(nil, mockS3, nil, backupConfig{}, logp.NewNopLogger()) states, err := newStates(nil, store, listPrefix) require.NoError(t, err, "states creation must succeed") diff --git a/x-pack/filebeat/input/awss3/sqs_input.go b/x-pack/filebeat/input/awss3/sqs_input.go index 470be9fe7ef7..568e7eea4971 100644 --- a/x-pack/filebeat/input/awss3/sqs_input.go +++ b/x-pack/filebeat/input/awss3/sqs_input.go @@ -336,7 +336,7 @@ func (in *sqsReaderInput) logConfigSummary() { func (in *sqsReaderInput) createEventProcessor() (sqsProcessor, error) { fileSelectors := in.config.getFileSelectors() - s3EventHandlerFactory := newS3ObjectProcessorFactory(in.metrics, in.s3, fileSelectors, in.config.BackupConfig) + s3EventHandlerFactory := newS3ObjectProcessorFactory(in.metrics, in.s3, fileSelectors, in.config.BackupConfig, in.log) script, err := newScriptFromConfig(in.log.Named("sqs_script"), in.config.SQSScript) if err != nil { diff --git a/x-pack/filebeat/input/azureblobstorage/auth_test.go b/x-pack/filebeat/input/azureblobstorage/auth_test.go index 68b18aa585c9..f6378cc55df2 100644 --- a/x-pack/filebeat/input/azureblobstorage/auth_test.go +++ b/x-pack/filebeat/input/azureblobstorage/auth_test.go @@ -138,7 +138,7 @@ func Test_OAuth2(t *testing.T) { Transport: httpClient.Transport.(*customTransporter), } - input := newStatelessInput(conf, serv.URL+"/") + input := newStatelessInput(conf, serv.URL+"/", logp.NewNopLogger()) assert.Equal(t, "azure-blob-storage-stateless", input.Name()) assert.NoError(t, input.Test(v2.TestContext{})) diff --git a/x-pack/filebeat/input/azureblobstorage/input.go b/x-pack/filebeat/input/azureblobstorage/input.go index c2918858b294..3cdf0d46cc71 100644 --- a/x-pack/filebeat/input/azureblobstorage/input.go +++ b/x-pack/filebeat/input/azureblobstorage/input.go @@ -21,6 +21,7 @@ import ( type azurebsInput struct { config config serviceURL string + logger *logp.Logger } // defines the valid range for Unix timestamps for 64 bit integers @@ -84,7 +85,7 @@ func configure(cfg *conf.C) ([]cursor.Source, cursor.Input, error) { } else { urL = "https://" + config.AccountName + ".blob.core.windows.net/" } - return sources, &azurebsInput{config: config, serviceURL: urL}, nil + return sources, &azurebsInput{config: config, serviceURL: urL, logger: logp.NewLogger("")}, nil } // tryOverrideOrDefault, overrides global values with local diff --git a/x-pack/filebeat/input/azureblobstorage/input_stateless.go b/x-pack/filebeat/input/azureblobstorage/input_stateless.go index 41dffd65e685..155ed35c521f 100644 --- a/x-pack/filebeat/input/azureblobstorage/input_stateless.go +++ b/x-pack/filebeat/input/azureblobstorage/input_stateless.go @@ -13,19 +13,21 @@ import ( cursor "github.com/elastic/beats/v7/filebeat/input/v2/input-cursor" stateless "github.com/elastic/beats/v7/filebeat/input/v2/input-stateless" "github.com/elastic/beats/v7/libbeat/beat" + "github.com/elastic/elastic-agent-libs/logp" ) type statelessInput struct { config config serviceURL string + logger *logp.Logger } func (statelessInput) Name() string { return "azure-blob-storage-stateless" } -func newStatelessInput(config config, url string) *statelessInput { - return &statelessInput{config: config, serviceURL: url} +func newStatelessInput(config config, url string, logger *logp.Logger) *statelessInput { + return &statelessInput{config: config, serviceURL: url, logger: logger} } func (in *statelessInput) Test(v2.TestContext) error { diff --git a/x-pack/filebeat/input/azureblobstorage/input_test.go b/x-pack/filebeat/input/azureblobstorage/input_test.go index 2691a119c14d..dc3288b6a512 100644 --- a/x-pack/filebeat/input/azureblobstorage/input_test.go +++ b/x-pack/filebeat/input/azureblobstorage/input_test.go @@ -509,7 +509,7 @@ func Test_StorageClient(t *testing.T) { assert.EqualError(t, err, tt.expectedError.Error()) return } - input := newStatelessInput(conf, serv.URL+"/") + input := newStatelessInput(conf, serv.URL+"/", logp.NewNopLogger()) assert.Equal(t, "azure-blob-storage-stateless", input.Name()) assert.NoError(t, input.Test(v2.TestContext{})) diff --git a/x-pack/filebeat/input/azureblobstorage/metrics.go b/x-pack/filebeat/input/azureblobstorage/metrics.go index 57e30a1b975c..6328bafc5eba 100644 --- a/x-pack/filebeat/input/azureblobstorage/metrics.go +++ b/x-pack/filebeat/input/azureblobstorage/metrics.go @@ -8,6 +8,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -53,15 +54,16 @@ func newInputMetrics(id string, optionalParent *monitoring.Registry) *inputMetri sourceLagTime: metrics.NewUniformSample(1024), } - adapter.NewGoMetrics(reg, "abs_blob_processing_time", adapter.Accept). + logger := logp.NewLogger("") + adapter.NewGoMetrics(reg, "abs_blob_processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.absBlobProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "abs_blob_size_in_bytes", adapter.Accept). + adapter.NewGoMetrics(reg, "abs_blob_size_in_bytes", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.absBlobSizeInBytes)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "abs_events_per_blob", adapter.Accept). + adapter.NewGoMetrics(reg, "abs_events_per_blob", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.absEventsPerBlob)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "abs_jobs_scheduled_after_validation", adapter.Accept). + adapter.NewGoMetrics(reg, "abs_jobs_scheduled_after_validation", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.absJobsScheduledAfterValidation)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "source_lag_time", adapter.Accept). + adapter.NewGoMetrics(reg, "source_lag_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.sourceLagTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. return out diff --git a/x-pack/filebeat/input/azureeventhub/metrics.go b/x-pack/filebeat/input/azureeventhub/metrics.go index 8671771fcdda..5545c37b03dc 100644 --- a/x-pack/filebeat/input/azureeventhub/metrics.go +++ b/x-pack/filebeat/input/azureeventhub/metrics.go @@ -10,6 +10,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -39,7 +40,7 @@ func newInputMetrics(id string, parentRegistry *monitoring.Registry) *inputMetri processorRestarts: monitoring.NewUint(reg, "processor_restarts_total"), } _ = adapter. - NewGoMetrics(reg, "processing_time", adapter.Accept). + NewGoMetrics(reg, "processing_time", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(inputMetrics.processingTime)) return &inputMetrics diff --git a/x-pack/filebeat/input/benchmark/input.go b/x-pack/filebeat/input/benchmark/input.go index 4f9b64332f7f..6fc6a0680f4d 100644 --- a/x-pack/filebeat/input/benchmark/input.go +++ b/x-pack/filebeat/input/benchmark/input.go @@ -16,6 +16,7 @@ import ( "github.com/elastic/beats/v7/libbeat/feature" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" "github.com/elastic/elastic-agent-libs/config" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" @@ -171,7 +172,7 @@ func newInputMetrics(ctx v2.Context) *inputMetrics { publishingTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "publishing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "publishing_time", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.publishingTime)) return out diff --git a/x-pack/filebeat/input/cel/input.go b/x-pack/filebeat/input/cel/input.go index b37205e6c3a4..f5cb83cb05e2 100644 --- a/x-pack/filebeat/input/cel/input.go +++ b/x-pack/filebeat/input/cel/input.go @@ -830,7 +830,7 @@ func newClient(ctx context.Context, cfg config, log *logp.Logger, reg *monitorin } if reg != nil { - c.Transport = httpmon.NewMetricsRoundTripper(c.Transport, reg) + c.Transport = httpmon.NewMetricsRoundTripper(c.Transport, reg, log) } c.CheckRedirect = checkRedirect(cfg.Resource, log) @@ -884,6 +884,7 @@ func clientOptions(u *url.URL, keepalive httpcommon.WithKeepaliveSettings, log * fallthrough case !ok: return []httpcommon.TransportOption{ + httpcommon.WithLogger(log), httpcommon.WithAPMHTTPInstrumentation(), keepalive, } @@ -1270,9 +1271,10 @@ func newInputMetrics(id string) (*inputMetrics, *monitoring.Registry) { celProcessingTime: metrics.NewUniformSample(1024), batchProcessingTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "cel_processing_time", adapter.Accept). + logger := logp.NewLogger("") + _ = adapter.NewGoMetrics(reg, "cel_processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.celProcessingTime)) - _ = adapter.NewGoMetrics(reg, "batch_processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "batch_processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.batchProcessingTime)) return out, reg diff --git a/x-pack/filebeat/input/entityanalytics/provider/activedirectory/metrics.go b/x-pack/filebeat/input/entityanalytics/provider/activedirectory/metrics.go index 070deab28868..a6a100e771eb 100644 --- a/x-pack/filebeat/input/entityanalytics/provider/activedirectory/metrics.go +++ b/x-pack/filebeat/input/entityanalytics/provider/activedirectory/metrics.go @@ -8,6 +8,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -43,8 +44,10 @@ func newMetrics(id string, optionalParent *monitoring.Registry) *inputMetrics { updateProcessingTime: metrics.NewUniformSample(1024), } - adapter.NewGoMetrics(reg, "sync_processing_time", adapter.Accept).Register("histogram", metrics.NewHistogram(out.syncProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "update_processing_time", adapter.Accept).Register("histogram", metrics.NewHistogram(out.updateProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. + logger := logp.NewLogger("") + + adapter.NewGoMetrics(reg, "sync_processing_time", logger, adapter.Accept).Register("histogram", metrics.NewHistogram(out.syncProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. + adapter.NewGoMetrics(reg, "update_processing_time", logger, adapter.Accept).Register("histogram", metrics.NewHistogram(out.updateProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. return &out } diff --git a/x-pack/filebeat/input/entityanalytics/provider/azuread/metrics.go b/x-pack/filebeat/input/entityanalytics/provider/azuread/metrics.go index 2d00858a6b31..ad2774ed2dbc 100644 --- a/x-pack/filebeat/input/entityanalytics/provider/azuread/metrics.go +++ b/x-pack/filebeat/input/entityanalytics/provider/azuread/metrics.go @@ -8,6 +8,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -43,8 +44,9 @@ func newMetrics(id string, optionalParent *monitoring.Registry) *inputMetrics { updateProcessingTime: metrics.NewUniformSample(1024), } - adapter.NewGoMetrics(reg, "sync_processing_time", adapter.Accept).Register("histogram", metrics.NewHistogram(out.syncProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "update_processing_time", adapter.Accept).Register("histogram", metrics.NewHistogram(out.updateProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. + logger := logp.NewLogger("") + adapter.NewGoMetrics(reg, "sync_processing_time", logger, adapter.Accept).Register("histogram", metrics.NewHistogram(out.syncProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. + adapter.NewGoMetrics(reg, "update_processing_time", logger, adapter.Accept).Register("histogram", metrics.NewHistogram(out.updateProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. return &out } diff --git a/x-pack/filebeat/input/entityanalytics/provider/jamf/metrics.go b/x-pack/filebeat/input/entityanalytics/provider/jamf/metrics.go index 54186b87fee8..e09f3e6e2c4c 100644 --- a/x-pack/filebeat/input/entityanalytics/provider/jamf/metrics.go +++ b/x-pack/filebeat/input/entityanalytics/provider/jamf/metrics.go @@ -8,6 +8,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -43,8 +44,9 @@ func newMetrics(id string, optionalParent *monitoring.Registry) *inputMetrics { updateProcessingTime: metrics.NewUniformSample(1024), } - adapter.NewGoMetrics(reg, "sync_processing_time", adapter.Accept).Register("histogram", metrics.NewHistogram(out.syncProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "update_processing_time", adapter.Accept).Register("histogram", metrics.NewHistogram(out.updateProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. + logger := logp.NewLogger("") + adapter.NewGoMetrics(reg, "sync_processing_time", logger, adapter.Accept).Register("histogram", metrics.NewHistogram(out.syncProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. + adapter.NewGoMetrics(reg, "update_processing_time", logger, adapter.Accept).Register("histogram", metrics.NewHistogram(out.updateProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. return &out } diff --git a/x-pack/filebeat/input/entityanalytics/provider/okta/metrics.go b/x-pack/filebeat/input/entityanalytics/provider/okta/metrics.go index ad0b14e9df93..0b30abc967fb 100644 --- a/x-pack/filebeat/input/entityanalytics/provider/okta/metrics.go +++ b/x-pack/filebeat/input/entityanalytics/provider/okta/metrics.go @@ -8,6 +8,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -43,8 +44,9 @@ func newMetrics(id string, optionalParent *monitoring.Registry) *inputMetrics { updateProcessingTime: metrics.NewUniformSample(1024), } - adapter.NewGoMetrics(reg, "sync_processing_time", adapter.Accept).Register("histogram", metrics.NewHistogram(out.syncProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "update_processing_time", adapter.Accept).Register("histogram", metrics.NewHistogram(out.updateProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. + logger := logp.NewLogger("") + adapter.NewGoMetrics(reg, "sync_processing_time", logger, adapter.Accept).Register("histogram", metrics.NewHistogram(out.syncProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. + adapter.NewGoMetrics(reg, "update_processing_time", logger, adapter.Accept).Register("histogram", metrics.NewHistogram(out.updateProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. return &out } diff --git a/x-pack/filebeat/input/etw/input.go b/x-pack/filebeat/input/etw/input.go index fd2272b3d4ab..f97233e3338d 100644 --- a/x-pack/filebeat/input/etw/input.go +++ b/x-pack/filebeat/input/etw/input.go @@ -325,11 +325,12 @@ func newInputMetrics(session, id string) *inputMetrics { processingTime: metrics.NewUniformSample(1024), } out.name.Set(session) - _ = adapter.NewGoMetrics(reg, "source_lag_time", adapter.Accept). + logger := logp.NewLogger("") + _ = adapter.NewGoMetrics(reg, "source_lag_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.sourceLag)) - _ = adapter.NewGoMetrics(reg, "arrival_period", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "arrival_period", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.arrivalPeriod)) - _ = adapter.NewGoMetrics(reg, "processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.processingTime)) return out diff --git a/x-pack/filebeat/input/gcppubsub/metrics.go b/x-pack/filebeat/input/gcppubsub/metrics.go index a0968d40bc56..03e7854ba604 100644 --- a/x-pack/filebeat/input/gcppubsub/metrics.go +++ b/x-pack/filebeat/input/gcppubsub/metrics.go @@ -8,6 +8,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -34,7 +35,7 @@ func newInputMetrics(id string, optionalParent *monitoring.Registry) *inputMetri bytesProcessedTotal: monitoring.NewUint(reg, "bytes_processed_total"), processingTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "processing_time", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.processingTime)) return out diff --git a/x-pack/filebeat/input/gcs/metrics.go b/x-pack/filebeat/input/gcs/metrics.go index 58b5e3c02570..57eacd0811ea 100644 --- a/x-pack/filebeat/input/gcs/metrics.go +++ b/x-pack/filebeat/input/gcs/metrics.go @@ -8,6 +8,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -59,15 +60,16 @@ func newInputMetrics(id string, optionalParent *monitoring.Registry) *inputMetri sourceLagTime: metrics.NewUniformSample(1024), } - adapter.NewGoMetrics(reg, "gcs_object_processing_time", adapter.Accept). + logger := logp.NewLogger("") + adapter.NewGoMetrics(reg, "gcs_object_processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.gcsObjectProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "gcs_object_size_in_bytes", adapter.Accept). + adapter.NewGoMetrics(reg, "gcs_object_size_in_bytes", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.gcsObjectSizeInBytes)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "gcs_events_per_object", adapter.Accept). + adapter.NewGoMetrics(reg, "gcs_events_per_object", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.gcsEventsPerObject)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "gcs_jobs_scheduled_after_validation", adapter.Accept). + adapter.NewGoMetrics(reg, "gcs_jobs_scheduled_after_validation", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.gcsJobsScheduledAfterValidation)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. - adapter.NewGoMetrics(reg, "source_lag_time", adapter.Accept). + adapter.NewGoMetrics(reg, "source_lag_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.sourceLagTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. return out diff --git a/x-pack/filebeat/input/http_endpoint/input.go b/x-pack/filebeat/input/http_endpoint/input.go index 83cd9ad3644c..662446728047 100644 --- a/x-pack/filebeat/input/http_endpoint/input.go +++ b/x-pack/filebeat/input/http_endpoint/input.go @@ -50,6 +50,7 @@ type httpEndpoint struct { config config addr string tlsConfig *tls.Config + logger *logp.Logger } func Plugin() v2.Plugin { @@ -90,6 +91,7 @@ func newHTTPEndpoint(config config, logger *logp.Logger) (*httpEndpoint, error) config: config, tlsConfig: tlsConfig, addr: addr, + logger: logger, }, nil } @@ -456,13 +458,14 @@ func newInputMetrics(id string) *inputMetrics { batchProcessingTime: metrics.NewUniformSample(1024), batchACKTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "size", adapter.Accept). + logger := logp.NewLogger("") + _ = adapter.NewGoMetrics(reg, "size", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.contentLength)) - _ = adapter.NewGoMetrics(reg, "batch_size", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "batch_size", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.batchSize)) - _ = adapter.NewGoMetrics(reg, "batch_processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "batch_processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.batchProcessingTime)) - _ = adapter.NewGoMetrics(reg, "batch_ack_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "batch_ack_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.batchACKTime)) return out diff --git a/x-pack/filebeat/input/httpjson/input.go b/x-pack/filebeat/input/httpjson/input.go index 07bef9f28d09..cb5b6f7d3d31 100644 --- a/x-pack/filebeat/input/httpjson/input.go +++ b/x-pack/filebeat/input/httpjson/input.go @@ -193,7 +193,7 @@ func run(ctx v2.Context, cfg config, pub inputcursor.Publisher, crsr *inputcurso } } - metrics := newInputMetrics(reg) + metrics := newInputMetrics(reg, log) client, err := newHTTPClient(stdCtx, cfg, log, reg) if err != nil { @@ -347,7 +347,7 @@ func newNetHTTPClient(ctx context.Context, cfg *requestConfig, log *logp.Logger, } if reg != nil { - netHTTPClient.Transport = httpmon.NewMetricsRoundTripper(netHTTPClient.Transport, reg) + netHTTPClient.Transport = httpmon.NewMetricsRoundTripper(netHTTPClient.Transport, reg, log) } netHTTPClient.CheckRedirect = checkRedirect(cfg, log) diff --git a/x-pack/filebeat/input/httpjson/metrics.go b/x-pack/filebeat/input/httpjson/metrics.go index 4e0ba508c015..b41d3c99151b 100644 --- a/x-pack/filebeat/input/httpjson/metrics.go +++ b/x-pack/filebeat/input/httpjson/metrics.go @@ -9,6 +9,7 @@ import ( "github.com/rcrowley/go-metrics" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -21,7 +22,7 @@ type inputMetrics struct { intervalErrs *monitoring.Uint // total number of interval errors } -func newInputMetrics(reg *monitoring.Registry) *inputMetrics { +func newInputMetrics(reg *monitoring.Registry, logger *logp.Logger) *inputMetrics { if reg == nil { return nil } @@ -34,11 +35,11 @@ func newInputMetrics(reg *monitoring.Registry) *inputMetrics { intervalPages: metrics.NewUniformSample(1024), } - _ = adapter.GetGoMetrics(reg, "httpjson_interval_execution_time", adapter.Accept). + _ = adapter.GetGoMetrics(reg, "httpjson_interval_execution_time", logger, adapter.Accept). GetOrRegister("histogram", metrics.NewHistogram(out.intervalExecutionTime)) - _ = adapter.GetGoMetrics(reg, "httpjson_interval_pages_execution_time", adapter.Accept). + _ = adapter.GetGoMetrics(reg, "httpjson_interval_pages_execution_time", logger, adapter.Accept). GetOrRegister("histogram", metrics.NewHistogram(out.intervalPageExecutionTime)) - _ = adapter.GetGoMetrics(reg, "httpjson_interval_pages", adapter.Accept). + _ = adapter.GetGoMetrics(reg, "httpjson_interval_pages", logger, adapter.Accept). GetOrRegister("histogram", metrics.NewHistogram(out.intervalPages)) return out diff --git a/x-pack/filebeat/input/internal/httpmon/roundtripper.go b/x-pack/filebeat/input/internal/httpmon/roundtripper.go index 2c01146c69a5..461d5663c49a 100644 --- a/x-pack/filebeat/input/internal/httpmon/roundtripper.go +++ b/x-pack/filebeat/input/internal/httpmon/roundtripper.go @@ -11,6 +11,7 @@ import ( "github.com/rcrowley/go-metrics" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -52,14 +53,14 @@ type httpMetrics struct { // responses metrics to the provided input monitoring registry. // It will register all http related metrics into the provided registry, but it is not responsible // for its lifecyle. -func NewMetricsRoundTripper(next http.RoundTripper, reg *monitoring.Registry) *MetricsRoundTripper { +func NewMetricsRoundTripper(next http.RoundTripper, reg *monitoring.Registry, logger *logp.Logger) *MetricsRoundTripper { return &MetricsRoundTripper{ transport: next, - metrics: newHTTPMetrics(reg), + metrics: newHTTPMetrics(reg, logger), } } -func newHTTPMetrics(reg *monitoring.Registry) *httpMetrics { +func newHTTPMetrics(reg *monitoring.Registry, logger *logp.Logger) *httpMetrics { if reg == nil { return nil } @@ -88,11 +89,11 @@ func newHTTPMetrics(reg *monitoring.Registry) *httpMetrics { roundTripTime: metrics.NewUniformSample(1024), } - _ = adapter.GetGoMetrics(reg, "http_request_body_bytes", adapter.Accept). + _ = adapter.GetGoMetrics(reg, "http_request_body_bytes", logger, adapter.Accept). GetOrRegister("histogram", metrics.NewHistogram(out.reqsSize)) - _ = adapter.GetGoMetrics(reg, "http_response_body_bytes", adapter.Accept). + _ = adapter.GetGoMetrics(reg, "http_response_body_bytes", logger, adapter.Accept). GetOrRegister("histogram", metrics.NewHistogram(out.respsSize)) - _ = adapter.GetGoMetrics(reg, "http_round_trip_time", adapter.Accept). + _ = adapter.GetGoMetrics(reg, "http_round_trip_time", logger, adapter.Accept). GetOrRegister("histogram", metrics.NewHistogram(out.roundTripTime)) return out diff --git a/x-pack/filebeat/input/lumberjack/metrics.go b/x-pack/filebeat/input/lumberjack/metrics.go index f25a38c33324..f9a8f7c3b979 100644 --- a/x-pack/filebeat/input/lumberjack/metrics.go +++ b/x-pack/filebeat/input/lumberjack/metrics.go @@ -8,6 +8,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -38,7 +39,7 @@ func newInputMetrics(id string, optionalParent *monitoring.Registry) *inputMetri messagesReceivedTotal: monitoring.NewUint(reg, "messages_received_total"), batchProcessingTime: metrics.NewUniformSample(1024), } - adapter.NewGoMetrics(reg, "batch_processing_time", adapter.Accept). + adapter.NewGoMetrics(reg, "batch_processing_time", logp.NewLogger(""), adapter.Accept). Register("histogram", metrics.NewHistogram(out.batchProcessingTime)) //nolint:errcheck // A unique namespace is used so name collisions are impossible. return out diff --git a/x-pack/filebeat/input/streaming/metrics.go b/x-pack/filebeat/input/streaming/metrics.go index 6f94b5e888b3..ad2b65863eb8 100644 --- a/x-pack/filebeat/input/streaming/metrics.go +++ b/x-pack/filebeat/input/streaming/metrics.go @@ -8,6 +8,7 @@ import ( "github.com/rcrowley/go-metrics" "github.com/elastic/beats/v7/libbeat/monitoring/inputmon" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/monitoring" "github.com/elastic/elastic-agent-libs/monitoring/adapter" ) @@ -42,9 +43,11 @@ func newInputMetrics(id string) *inputMetrics { celProcessingTime: metrics.NewUniformSample(1024), batchProcessingTime: metrics.NewUniformSample(1024), } - _ = adapter.NewGoMetrics(reg, "cel_processing_time", adapter.Accept). + + logger := logp.NewLogger("") + _ = adapter.NewGoMetrics(reg, "cel_processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.celProcessingTime)) - _ = adapter.NewGoMetrics(reg, "batch_processing_time", adapter.Accept). + _ = adapter.NewGoMetrics(reg, "batch_processing_time", logger, adapter.Accept). Register("histogram", metrics.NewHistogram(out.batchProcessingTime)) return out diff --git a/x-pack/metricbeat/module/iis/application_pool/reader.go b/x-pack/metricbeat/module/iis/application_pool/reader.go index 3a16d2dc5be6..3148b65af4e8 100644 --- a/x-pack/metricbeat/module/iis/application_pool/reader.go +++ b/x-pack/metricbeat/module/iis/application_pool/reader.go @@ -132,7 +132,7 @@ func (r *Reader) initAppPools() error { logp.Namespace("application pool"), "query", value, ) } else { - r.log.Errorf(`failed to expand counter path (query= "%v"): %w`, value, err) + r.log.Errorf(`failed to expand counter path (query= "%v"): %v`, value, err) } continue }